Method and system for solving large scale optimization problems including integrating machine learning with search processes

ABSTRACT

Methods, apparatus, and computer program product, the method for determining an executable solution for a problem of scheduling work orders within an organization, comprising: obtaining a sample collection of solutions from a solution space of the problem, wherein the sample collection comprising a plurality of solutions to the problem based on a collection of goals, and wherein the sample collection includes one or more solutions optimizing a subset of the goals, the subset of the goals different from the collection of goals; and in an interactive stage: receiving from a user a collection of actual work orders to be executed; and providing to the user a suggested solution for scheduling the actual work orders, the suggested solution based on one or more solutions from the sample collection, wherein the suggested solution is a practical solution.

TECHNICAL FIELD

The present disclosure relates to a method and apparatus for creatingpractical optimal solutions for large scale problems such as schedulingin general, and to creating practical executable solutions, inparticular.

BACKGROUND

Optimization problems are an integral part of life in general, andpractically of any field, such as but not limited to business,manufacturing scheduling, planning optimal delivery routes betweengeographical locations (the “traveling salesman” problem), placement ofcircuits on a wafer in an electrotonic product, transportation, budgetallocation, and many others. For example, in determining an optimalweekly schedule for a manufacturing factory, a demand set of work ordersto be produced by certain due-dates is given, and it is required toassign resources to the work orders, such as raw material, machines,tools and people, at certain time slots so as complete production insuch a way that business rules are satisfied, and an objective functionis optimized. An example of a business rule may state that a 60 cm widemachine cannot be assigned to cut 70 cm wide raw material. Anotherexample is that a second operation cannot start before a first operationis completed. A schedule that complies with all business rules is named‘feasible’ or ‘valid’. Schedule quality may be calculated according toan objective function, also referred to as Z function, which may bedefined as a mix of one or multiple metrics or goals such as but notlimited to: due date compliance, completion time of last job(make-span), machine utilization, raw material consumption, and more. Avalid schedule is said to be optimal if no other valid schedule yields abetter Z value.

An optimization problem is a problem of finding one or more solutionswhich are superior to all other feasible solutions.

The term “best” as related to a solution is tightly associated with theproblem at hand, and may be comprised of an optimal value of a Zfunction related to a combination of multiple factors, wherein some ofwhich may be in conflict with each other. For example, in a productdelivery problem, the term “best” can relate to minimal time until lastproduct is delivered, minimize use of raw material, minimal productiontime, maximal number of products delivered within a predetermined periodof time, or the like, whereby a goal like “minimize delivery time” mayresult in excess use of materials and be in conflict of goals like“minimize use of raw material”.

Many of the optimization problems are known to be NP-hard problems,meaning that the number of possible solutions grows exponentially withthe size of problem input, stated for example in terms of work orders,time slots, machines, raw material, operation steps, personnel andtools. Hence explicit or implicit exploration of all feasible solutionsto guarantee an optimal solution is practically prohibitive, and mayrequire computer time which exceeds the allowable planning time even bythe fastest computer. Therefore, such optimization problems are oftenaddressed by using heuristic methods and approximation algorithms thatare expected to converge to good solutions, but cannot be proven to beoptimal.

The disclosure below focuses on scheduling of work in a manufacturingfactory. However, it is contemplated that this is merely an example, andthe same principles may be applied to any other environment.

Numerous mathematical methods and algorithms have been proposed toautomatically build an optimal manufacturing schedule for a day, week,month or the like. The methods and algorithms are based on a variety ofapproaches such as Tabu search, Simulated Annealing, Genetic, AntColony, Grasshopper algorithms, and other heuristic and metaheuristicalgorithms. The vast majority of current methods and algorithms forscheduling optimization are primarily concerned with the combinatorialcomplexity of the scheduling problem and are mainly focused on the speedof convergence to an ‘optimal’ schedule, i.e., the best solution thatcan be found in practical processing time, which may not be optimal bythe above mathematical definition.

The current methods have a number of drawbacks. A first drawback relatesto executability and robustness: in real life, ‘surprises’ or unexpectedevents such as machine breakdown, remake of an urgent part, a taskduration taking longer than planned, or the like occur very often anddisrupt execution of pre-prepared schedules. By the very nature ofinter-relationships between manufacturing operations, almost everychange in the schedule may be a root cause for other changes that, inturn, imply their own changes, causing together a complex chain effectthat needs to be settled. Recovering from such disruptions in the midstof busy daily operations is more challenging than just a re-run of acomputer program, because it involves people and physical real-lifeobjects, thereby making the cost and complexity of changes quite high.Even relatively small ‘surprises’ may lead to radical changes in theoriginal schedules causing excessive cost.

Another drawback of current algorithms is that schedules produced bythem are primarily focused on the highest density of the schedule, arelikely to include assignments that work against ‘executability’, andtheir logic is not necessarily intelligible to a human scheduler. As aresult, revising a schedule to adapt to changes or disruptions is oftenfrustrating for the scheduler, and in many cases reduces significantlythe Z value for the business actual execution.

Yet another drawback of the current methods relates to micro levelobjectives, that is context-dependent objectives that most users cannotarticulate, or that even if they could, are practically prohibitive tomodel. Quite often a user is presented with a schedule showing anoptimal schedule with a satisfactory Z value for the overall objectivefunction set by the user. After reviewing the schedule, the user maystart changing the schedule, such as: bringing into the schedule awork-order from a very important customer that was left out. The usermay insist on these changes even when they reduce the Z value, due tomicro-level objectives that override the macro level objective functionsand, business wise, are the right thing to do. Foreseeing all suchmicro-level objectives ahead of time and incorporating them into thecurrent methods is impractical as they are context dependent, theirnumber could be very large and enumerating them in the original problemformulation is therefore prohibitive.

BRIEF SUMMARY

One exemplary embodiment of the disclosed subject matter is acomputer-implemented method for determining an executable solution for aproblem of scheduling work orders within an organization, comprising:obtaining a sample collection of solutions from a solution space of theproblem, wherein the sample collection comprising a plurality ofsolutions to the problem based on a collection of goals, and wherein thesample collection includes one or more solutions optimizing a subset ofthe goals, the subset of the goals different from the collection ofgoals; and in an interactive stage: receiving from a user a collectionof actual work orders to be executed; and providing to the user asuggested solution for scheduling the actual work orders, the suggestedsolution based on one or more solutions from the sample collection,wherein the suggested solution is a practical solution. Within themethod, said interactive stage can further comprise: receiving from theuser one or more changes to the suggested solution; and enhancing thesuggested solution to accommodate the changes, thereby obtaining thepractical solution to the problem. Within the method, the suggestedsolution is optionally selected from the sample collection of solutions.The method can further comprise receiving from the user a set of targetvalues, and wherein subject to the sample collection not comprising asolution that complies with the target values, issuing a warning to theuser indicating that not all target values can be met. The method canfurther comprise receiving an updated target value from the user andproviding the suggested solution to comply with the updated targetvalue. Within the method, generating the sample collection optionallycomprises: obtaining goals of the problem; generating a plurality ofsolutions, wherein generating each solution from the plurality ofsolutions comprises: selecting a work order set from an exemplary set ofwork orders; selecting an objective combination; selecting a work ordersequencing algorithm for setting an order in which work orders from thework order set are to be assigned; selecting an assignment algorithm forassigning required resources for each work order; and applying the workorder sequencing algorithm to repeatedly select a work order andapplying the assignment algorithm for assigning resources to the workorder. Within the method, the sample collection is optionally generatedon an offline stage. Within the method, the sample collection optionallycomprises two or more solutions. Within the method, the subset of thegoals optionally comprises exactly one goal from the collection ofgoals. Within the method, the sample collection optionally depicts anoperational envelope of the organization. Within the method, saidreceiving the change from the user and said enhancing the solution areoptionally repeated until the practical solution converges. The methodcan further comprise receiving from the user an indication for a targetvalue for each of two or more goals, wherein the target value for eachgoal is indicated independently of other goals and in units appropriatefor the goal. The method can further comprise: monitoring execution ofthe solution to obtain execution data; and using a data item from theexecution data to enhance the suggested solution. The method can furthercomprise: receiving from the user one or more updates to the solution;and incorporating the updates into determination of the samplecollection of solutions. The method can further comprise: receiving fromthe user updates to the solution; receiving from the user a set oftarget values; verifying that the solution as updated is feasible andcomplies with the set of target values; and subject to the at least onesolution as updated not complying with the target value, providing awarning to the user. The method can further comprise receiving from theuser a set of target values, and wherein the indication for each targetvalue is received through a user interface. Within the method, the userinterface can optionally limit a target value to values or value rangelearned from the two or more solutions each optimizing the goal. Withinthe method, the suggested solution is optionally selected from thesample collection of solutions. The method can further comprisereceiving from the user a set of target values, and wherein the solutionindicates a point on an operational envelope of the organization, andwherein absence of a suggested solution indicates that the set of targetvalues is external to the operational envelope. Within the method, thesuggested solution optionally comprises one or more solutions from thesample collection in which a task are padded by allocating additionalresources to the task beyond resources required by the task. Within themethod, the additional resources are optionally determined in accordancewith deviations in the resources required by the at least one task inpast schedules.

One exemplary embodiment of the disclosed subject matter is a method fordetermining an executable solution for a problem, comprising: generatinga sample collection of solutions, each solution in the sample collectionrepresenting a solution from a solution space of a problem of schedulingwork orders; receiving data related to a scheduling solution createdbased on the sample collection; and combining the data with the samplecollection, thereby learning an enhanced sample collection of solutions.Within the method, the data optionally comprises actual execution dataof the schedule. Within the method, the data optionally compriseschanges introduced by a user to a solution based on the samplecollection of solutions. said learning is optionally unsupervisedself-learning. The method can further comprise analyzing executiontrends for determining required changes in available resources. Themethod can further comprise learning trends to be used for long termforecasting and capacity planning based on the sample collection and theenhanced sample collection of solutions.

Yet another exemplary embodiment of the disclosed subject matter is amethod for determining an executable solution for a large-scale problem,comprising: obtaining a sample collection of solutions from a solutionspace of the problem, wherein the sample collection comprising aplurality of solutions to the problem based on a collection of goalsassociated with the problem, and wherein the sample collection includesa solution optimizing a subset of the collection of goals, the subset ofthe goals different from the collection of goals; and in an interactivestage: receiving from a user a collection of actual data relevant to theproblem; and providing to the user a suggested solution for solving theproblem, the suggested solution based on a solution from the samplecollection, wherein the suggested solution is a practical solution.

Yet another exemplary embodiment of the disclosed subject matter is acomputerized apparatus having a processor, the processor configured toperform the steps of: obtaining a sample collection of solutions from asolution space of a problem of scheduling work orders, wherein thesample collection comprising a plurality of solutions to the problembased on a collection of goals, and wherein the sample collectionincludes at least one solution optimizing a subset of the goals, thesubset of the goals different from the collection of goals; and in aninteractive stage: receiving from a user a collection of actual workorders to be executed; providing to the user a suggested solution forscheduling the actual work orders, the suggested solution based on atleast one solution from the sample collection; receiving from the userat least one change to the suggested solution; enhancing the suggestedsolution to accommodate the at least one change, thereby obtaining apractical solution; and providing the practical solution to the user.

Yet another exemplary embodiment of the disclosed subject matter is acomputer program product comprising a non-transitory computer readablestorage medium retaining program instructions configured to cause aprocessor to perform actions, which program instructions implement:obtaining a sample collection of solutions from a solution space of aproblem of scheduling work orders, wherein the sample collectioncomprising a plurality of solutions to the problem based on a collectionof goals, and wherein the sample collection includes at least onesolution optimizing a subset of the goals, the subset of the goalsdifferent from the collection of goals; and in an interactive stage:receiving from a user a collection of actual work orders to be executed;providing to the user a suggested solution for scheduling the actualwork orders, the suggested solution based on at least one solution fromthe sample collection; receiving from the user at least one change tothe suggested solution; enhancing the suggested solution to accommodatethe at least one change, thereby obtaining a practical solution; andproviding the practical solution to the user.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The present disclosed subject matter will be understood and appreciatedmore fully from the following detailed description taken in conjunctionwith the drawings in which corresponding or like numerals or charactersindicate corresponding or like components. Unless indicated otherwise,the drawings provide exemplary embodiments or aspects of the disclosureand do not limit the scope of the disclosure. In the drawings:

FIG. 1 is a schematic flowchart of a method for solving scheduling orother large-scale problems, in accordance with some exemplaryembodiments of the disclosure;

FIG. 2 is a detailed flowchart of a method for the offline stage ofsampling a solution space, in accordance with some exemplary embodimentsof the disclosure;

FIG. 3 is a detailed flowchart of a method for generating schedules thatsample the solution space, in accordance with some exemplary embodimentsof the disclosure;

FIGS. 4A, 4B and 4C show an exemplary user interface for manipulating aschedule, in accordance with some embodiments of the disclosure; and

FIG. 5 is a block diagram of a system for solving scheduling or otherlarge scale problems, in accordance with some embodiments of thedisclosure.

DETAILED DESCRIPTION

In the description below, the term “work order” or “job”, is to bewidely construed to cover any work that needs to be done to produce anoutput product, kit, part, or the like. A work order may comprise one ormore tasks to be performed at a predetermined order, each withpredetermined resources such as machines, human power, materials, tools,or the like.

In the description below, the term “assignment”, is to be widelyconstrued to cover a task or work order assigned to a specific time slotwith specified resources such as the machine or station, personnel, rawmaterial, or the like.

In the description below, the term “sequence”, is to be widely construedto cover any ordering of work orders. It is understood that a samecombination of work orders may be performed with different sequencing,having different implications on the assignments of certain work orders.

In the description below, the term “schedule” or “solution” is to bewidely construed to cover any combination of assignments for work ordersand their tasks, such that the required resources are available forexecuting or performing all the assigned work orders.

In the description below, the term “goal” is to be widely construed tocover a metric for assessing an objective of the organization, such asthroughput in terms of number of produced items, due date compliancerate, machine utilization, or the like. The term “target goal” is anumerical value that an organization may aim to achieve, e.g., due datecompliance of at least a predetermined value.

Thus “objective function” or “Z function” can be expressed as a weightedcombination of goals. For a given schedule, the value of the objectivefunction may represent the quality of the schedule with the aim offinding a schedule that maximizes the objective function.

In the description below, the term “business rule” or “constraint” is tobe widely construed to cover a limitation or requirement from theorganization to determine valid assignments that can be performed. Somebusiness rules may be strict and must be complied with, for example amaterial of width 60 cm cannot be cut on a 40 cm cutting machine. Otherbusiness rules may be more elastic. For example, the daily scheduleneeds to be completed by 5 pm, but under certain tight situations, up toa one extra overtime hour is acceptable, although not desirable.

One technical problem dealt with by the disclosed subject matter is theneed to solve large scale problems, such as but not limited toscheduling problems. Such problems are, by their nature highly complex.One example to such problems is a manufacturing problem wherein items ofmultiple types are to be manufactured by a plurality of machines, with aplurality of people, subject to the timely arrival of raw materials, theavailability of supporting tools, to be delivered by given due dates, orthe like. In this example, the goals of the scheduling may include butare not limited to any one or more, or a combination of the following:maximal number of items produced, maximal utilization of machines andpeople time, meeting a maximal number of due dates, meeting one or moreparticular due dates, minimal resource usage, minimal costs, qualitylevels or the like. An objective function to be optimized by thesolution may be defined as a weighted combination of one or more of thegoals which provides a quality score, and enables comparison between twosolutions.

Other examples may relate to optimal selection of raw material fromstock, optimal cutting of parts from materials, or the like.

The description of each such problem may comprise a list of work ordersto be scheduled, available resources and business rules that define avalid solution, e.g., a solution that may not be optimal but complieswith certain constraints. As detailed above, each work order maycomprise one or more tasks.

In classic mathematical approaches, the problem may be formulated by aset of mathematical formulas. Such formulation may involve continuousvariables and may be solved by linear programming methods, and/ordiscrete variables, which may be solved by integer programming.

For problems with discrete variables that involve combinatorial search,techniques such as simulated annealing, Taboo search, geneticalgorithms, grasshopper algorithms or others may be used for generatingsolutions which are optimal or just satisfactory for the user.

However, even after such analysis and refinement, a user, such as aperson in charge of scheduling the manufacturing, may not always be ableto fully phrase ahead of time in a rigorous manner the objectivefunction, and even an experienced user may always have additionalconsiderations, also referred to as micro level goals, which are hard toexpress mathematically, may depend on the changing circumstances, or thelike.

Moreover, once the requirements, constraints and objectives are given,and a solution is found that complies with the constraints and ismathematically optimal or close to optimal, the user may still beunhappy with the solution for a specific reason, or simply because of agut feeling that may be based on experience. Additionally, oralternatively, a user may prefer a solution associated with a lowervalue of the Z function over a solution that received a higher value.For example, in a proposed solution an item required for a majorcustomer may be scheduled to be manufactured towards the end of the workweek, and may thus be vulnerable to delays caused by failures in theequipment or in the manufacturing of other items throughout the week.Thus, while the solution is “optimal” it may still be impractical.

Currently available computerized systems and methods may attempt to havethe user add ‘micro-level goals’ into the original mathematicalobjective statement of the problem, such that the optimal schedule willalso reflect the micro-level goals, and provide a feasible solution,which may also be mathematically optimal or close to optimal. However,this is impractical or not optimal in business real-life. Although thehuman user provided or agreed with the objective function and businessrules, in certain contexts the user may realize he wishes to modify orreplace the provided solution with an alternative one, which he believesto be preferred for good business reasons under the specificcircumstances. As the micro-level goals are not always easy to foreseeahead of time, or to express mathematically, a user cannot alwaysphrase, or is even unaware of the micro-level goals, but can recognizethat a schedule is sub optimal or inappropriate when he sees it, due toincompliance of the schedule with such goals.

Another technical problem dealt with by the disclosure relates to therobustness of a generated solution to a problem. A schedule should notbe only measured by the Z value of its goal-driven metrics, alsoreferred to as Key Performance Indices (KPIs) such as makespan,throughput, or utilization, but also by factors that measure risk androbustness to disruptions during execution, and to facilitateaddressing, directly or indirectly, micro objectives. An ‘optimal’schedule may be so dense as a result of aiming at the best Z scores thatit may come at the cost of robustness. Namely, the planned schedule maybe very sensitive to disruptive events during execution, events which,in real life occur quite often. For example, longer than planned taskduration, raw material late arrival at production stations, machinebreakdown, or a new emergency work order that must be inserted into aday's schedule pushing out other pre-planned jobs. Such disruptiveevents necessitate changes in the planned (originally ‘optimal’)schedule. In a high-density schedule, the change required to respond toa single event may cause a complex chain of additional changes. Multiplesuch disruption events may worsen the macro Z scores of the actualexecuted schedule to a level far below those of the planned ‘optimal’schedule. Therefore, a planned schedule which is mathematically optimalmay not necessarily be practically optimal at execution. Moreover, asschedule execution involves people, raw material, and auxiliaryequipment in the real world, changes in the planned schedules also havemany other negative implications causing excessive cost.

Moreover, typical available systems operate as a black box that searchthe solution space, whereby assignments are generated and checked forvalidity and quality, and also for conflicts with other assignmentswhich compete for same resources. However, the user may have nounderstanding of how and why a certain schedule has been formed.

Yet another technical problem dealt with by the disclosed subject matteris that currently available systems demonstrate minimal if any learningand improvement from planning one schedule to the next, for example fromone week to the other. For a given factory, for example, while thedemand set may change from week to week, the overall structure in termsof the production lines, the products and their multi-step processes,and the business rules and objectives are fairly stable. However, thesystem will carry on the same process for generating the schedulesinstead of learning from previous schedules. Currently available systemsmay include minimal learning of parameters such as statistics of timeduration of a task, if at all, thus inevitably leading to lower‘robustness’ of their output, as the schedules time and again facereality without learning to adapt to it

One technical solution of the disclosure comprises creating a schedulethat is practically optimal in accordance with business considerations,although the obtained schedule may be somewhat inferior to amathematically optimal solution according to the Z function. Howeverthis practically optimal solution has higher degree of robustness andexecutability and complies with additional considerations which may notbe explicitly expressed. Such solution may be more understandable,thereby facilitating user-driven changes. Such a schedule may be named“practicum-optimum”, or “practimum”, as opposed to mathematical optimum.Determining the practical optimum may be based on a discovery processrather than a single optimal point search as done by currently availablesystems.

The solution combines sampling the solution space, computerized searchand additional techniques, artificial intelligence (AI) and inparticular machine learning techniques, with experience and expertise ofhuman users, thereby obtaining practically optimal solutions.

The solution comprises executing an offline pre-deployment process ofsampling the solution space, thereby obtaining a plurality of solutionsthat comply with different problem descriptions and aspects. Forexample, a solution may be generated for one or more combinationscreated by selecting one item from each of the following categories:

-   -   A set of factory settings, including for example specific        products, stations, processes, raw material, tools, worker        roles, and business rules;    -   Sets of demand work orders;    -   Sets of objective weights (objective functions);    -   Rules/constraints

A set of goals may be defined, such as maximal compliance with due datesvs maximal machine utilization time, or the like.

In the description below, the term “sequencing algorithm” relates to arule or algorithm for determining the order in which a particularscheduling algorithm assigns the various work orders at hand, which mayhave great impact on the resulting schedule. For example, if theresources are insufficient for executing all tasks, the first tasks tobe considered will get assigned, while the last ones may not, while adifferent sequencing of the work-orders will result in a different setof tasks getting assigned and executed.

In some embodiments, a solution may be generated for each suchcombination of work orders. In further embodiments, re-sequencing of thework orders may be applied to a given set of work orders a plurality oftimes, thereby creating a plurality of schedule options for the samecombination of work orders, resources, and assignment algorithm. In suchactivation or re-activation, work orders that have been highlyprioritized may get lower priority and vice versa, thereby generating adifferent order of the work orders to be assigned and thus a differentscheduling solution. One or more goal values may be determined for eachsuch schedule, each value related to one of the goals or a combinationthereof.

The operational envelope of an organization may be based on schedulesthat represent focusing on a rigid limited single goal, or a few goals,for example extreme focus on due date compliance which may come at highcost of low machine utilization and low throughput. The envelopestructure provides the tradeoff relationships between the various goals.That is, with a given set of manufacturing resources, what is themaximum score for a certain goal that can be achieved while complyingwith all business rules, possibly at the cost of all other goals. Forinstance, if the value of a certain goal on the envelope boundaries is85%, there is no point setting a performance target for the goal at 88%,because there are no valid schedules that would yield this score,meaning that this target is external to the operational envelope. A 88%goal can be achieved only if other factors are changed, such as the workorder combination, the available resources, allowing overtime, or thelike. It will be appreciated that a set of targets may be external tothe operational envelope if not all target goals can be achieved by thesame schedule.

The schedules generated during the pre-deployment stage may includeschedules aiming at optimizing a subset of the goals, for example onegoal, which may be useful in discovering and depicting the operationalenvelope of the organization.

The schedules may be stored, along with the parameters upon which theywere generated, the values they obtain for each goal, and additionalmetrics that may be derived, for example via learning algorithms, toobtain additional insights into the solution space. The additionalinsights or metrics may also serve as search indices that representsimilar problems to those seen and solved beforehand in the learningprocess, in order to arrive faster at an optimal solution of a newproblem, based on various parameters, such as the goal values, theparameters, or the various metrics.

The system may then be adapted to the specific factory situations byholding a training and orientation session. During such a session thesystem may drive a dialogue with its user for obtaining the user'spreferences, including for example the relative weights of the variousmacro level goals, executability considerations, and micro-levelobjectives.

Assessing a schedule quality by a user usually includes judgmentalsubjective elements for which the user cannot provide clear-cut rigorousstatements, but only statements that are context dependent and ‘soft’ bynature. To discover such elements, the system and method may leveragethe created collection of schedules to present the user with concreteexamples. Via such a dialogue, the user's subjective judgement isrevealed via concrete selection of his preferences, though for certainexamples. The system and method may then interpret the user's responsesinto its schedule generation process. For example, the training andorientation session may comprise presenting to the user pairs ofschedules and asking the user to point at the preferred schedule fromeach pair, thereby assessing the more important goals, characteristicsof the preferred schedules, or the like. The system may further ask auser to point at an assignment within a schedule that is problematic andselect (or not select) a problem from a predetermined list of reasons.By taking into account the subjective elements of schedule creation, theadvantages of humans and artificial intelligence may be combined,thereby providing for improved practimum-optimum solutions.

Having the solutions' data set and optionally the user's preferences, anonline or interactive macro planning stage can take place, in which auser provides a pending set of actual work orders, and is presented withone or more optional schedules from the sample of the solution space, orcombined upon multiple schedules from the sample, which are estimated asbeing optimal or most appropriate. The user may also be presented withdata such as key metrics, e.g., goal values, and other insights into theschedule, presented for example as a Gantt chart. If the work orderscannot all be executed while complying with the business rules, acorresponding notice may be provided to the user.

Whether a schedule is found or not, the user may iteratively change thework orders, the assignments, the goals, and/or the business rules, inorder to obtain a schedule that is better suited to the current needs ofthe organization.

Once a schedule is provided to a user, an online micro-objectivescheduling stage may take place via an online dialogue, where the usermay introduce, or request changes to the schedule, and the system maytry to accommodate these changes with minimal impact on executabilitymetrics and/or macro-goal values. The user input may also be stored andmay serve to make future schedules to be generated by the system addressin advance the user driven considerations of micro-objectives androbustness. Such suage of the user input may thus teach the system, suchthat over time less user involvement will be needed. If the user changescause the schedule to deviate from one or more of the goals set duringthe macro planning stage, a corresponding warning may be provided to theuser. In some embodiments, the user may approve the deviation andcontinue with the schedule although it deviates from the goals orconstraints the user himself has set. However, in some embodiments,strict constraints may not be overruled. For example, physicalconstraints such as a 60 cm wide fabric roll may not be cut by a 40 cmwide cutting machine. The dialogue may proceed until the scheduleconverges to a final practimum-optimum schedule. The schedule may thenbe distributed for execution to all the relevant entities in theorganization.

The practically optimal solution is thus the product of a discoveryprocess of the practimum-optimum, rather than a searching for a single‘optimal’ point by visiting only narrow parts of the solution space asis currently done by available systems. Additionally, the operationalenvelope may be discovered along with other insights into the solutionspace, which may also help during schedule execution and longer termplanning.

The schedule may also be monitored during execution, comprising forexample collecting information about the execution of each task: when itstarted and ended, on which station, with what resources, whether therehave been any failures, or the like, and certain parameters may bemeasured and stored for ongoing learning. For example, it may bemeasured and stored how long the actual execution of a certain tasktook, how often a raw material arrives late at a production station, orthe like.

Another technical solution of the disclosure comprises the systemon-going self-learning, also referred to as automatic learning orunsupervised learning, from past schedules, feedback related to on-goingusage of the system, including the user's responses and actions, and theexecution results. The final schedule may be added to a set of ‘trainingschedules’, and as time progresses and the training samples include agrowing number of real-life schedules, the system and method may learnbetter the user preferences, the actual execution performance, and thefactory characteristics. As a result, the schedule generation processmay be streamlined with faster and/or better convergence to thepractimum-optimum schedule. For example, if a user constantly moves workorders related to a certain customer or having another commoncharacteristic to earlier time slots, future schedules may be adapted todo that, too. In another example, if certain work order has significantvariance in its execution time, wider safety margins may be allocatedfor the task, such that execution of another task using the same machineas the specific task may not be set to begin immediately followingexecution of the specific task. The system can thus self-learn theschedule space, including key features, patterns, classes, and othercharacteristics of high-performance schedules.

The self-learning may include multi-dimensional capacity analysis of theresources, for a variety of volume and mix of work-order demand. Understressed situations the space of valid schedules could be quite sparse,and finding even a single valid schedule may be a challenge, let alonean optimal one, therefore recognizing stressed situations before runningan optimization algorithm is beneficial. Thus, self-learning is notfocused on just the assignment of work orders, but rather uncovers thesources of difficulties in determining and executing optimal schedules,such as capacity shortage, bottlenecks, tight business rules, andcompeting goals. The system may then use these factors in driving theschedule creation and execution processes.

Yet another technical solution of the disclosure relates to theself-learning assisting not only in streamlining future schedulecreation, but also in using the knowledge for strategic longer-termforecasting and capacity planning, such as recognizing ahead resourceshortage. For example, if the demand volume for Product A issystematically trending up and this may imply the need for additionalmachine M capacity in the coming 12 months, it may alert that capacityshould be increased, by buying more machines, hiring more people,extending work hours, or the like.

One technical effect of the disclosure relates to a method and systemfor achieving a “practical optimum” solution to complex problems such aslarge scale scheduling problems. If a full and precise definition of theproblem at hand has been available, a solution which is bothmathematically and practically optimal could be achieved by currentmethod. However since the problem is not fully defined due to theexistence of micro objectives which the user may not even be aware of,the current methods are not applicable for the full real life problem.The solution generated in accordance with the current disclosure may notbe mathematically optimal, but is practically optimal and enablescompliance with additional considerations and constraints learned fromexperience and may be crucial in successful execution of the plannedschedule, while the user may not have expressed them, either due totheir uniqueness, or subjective nature rather than disciplined planning.Thus, the solution may successfully overcome execution instabilityproblems, and the high complexities in recovering from disruptions. Apractically optimal solution may be obtained by integrating into theoptimization process macro goal metrics such as make-span, due datecompliance, throughput, and utilization, as well as factors that providerobustness and leeway breathing space to minimize the impact ofdisruptions during its execution, and the ability to integratemicro-level objectives. A balanced view on the planned schedule mayprovide for practical execution with high performance metrics at the endof the schedule period.

The solution thus combines computerized search and additionalcomputerized techniques with artificial intelligence (AI) and machinelearning techniques, and with the experience and know-how of humanusers, thereby enabling the design of a practically optimal solution asdescribed above. The combination provides for sampling the solutionspace in a manner impossible for a human user, and also utilizes thehuman knowledge, capabilities and experience.

The solution is practically optimal in that in addition to obtaining asatisfactory Z-score, it is also robust to execution events, and alsoaddresses micro-objectives and executability considerations. Thesolution also provides for learning of characteristics of the problemenvironment and its solutions. The disclosed method and apparatusintegrate classic search algorithms with learning discovery. The methodand apparatus generate a large sample dataset of schedules and applyunsupervised self-learning algorithms for discovering keycharacteristics of the schedules space, such as the organizationenvelope for any specific demand set of work-orders that need to beschedule. In some embodiments, the learning results. Once such knowledgeis available, it may be used in the short and long term. The knowledgemay be used during a dialogue with the user during scheduling, inaddressing micro-objectives and executability considerations, such thata solution may converge quickly to a practimum-optimum solution.

Another technical effect of the disclosure relates to a method andsystem that make efficient use of computing, computer time and humantime resources, by performing high resource consuming steps in anoffline stage, for example on nights, weekends, or other time slots whenusers are off, and the computing platforms are not highly loaded, or mayeven be idle. The results of this processing may then be used duringinteraction time of the user with the system, which is notcomputationally heavy, for example during normal business hours, whenthe computing resources are in higher demand.

Referring now to FIG. 1 , showing a schematic flowchart of a method forsolving scheduling or other large scale problems, in accordance withsome exemplary embodiments of the disclosure.

On step 100, a sample of the solution space may be obtained. In someembodiments, the sample may be obtained from an external source, such asa storage device, over a network, or the like. In further embodiments,the sample may be generated by automatic algorithms. Either way, thesample may be determined offline when user presence is not required, forexample over nights or weekends, or other times when computing resourcesare available.

The offline stage for sampling the solution space, may be performedpre-deployment of the solution, and also at later times, for exampleperiodically increase the sample set with additional recent samples. Instep 100 the problem parameters may be defined, and a plurality ofsolutions may be generated which sample its solution space.

On step 101, organizational insights may be obtained from the solutionspace. For example, step 101 may include discovering the operationalenvelope of the organization, e.g., by examining solutions which focuson optimizing a subset of the goals, such as individual goals. Forexample, if such a discovery implies that the due date deliverycompliance rate of some work order combinations cannot exceed 80%, evenif all other goals are compromised or non-existent, then clearly thisrate cannot be exceeded in the presence of current business rules.

Step 101 may thus comprise obtaining parameters and goals of theproblem, based on a sample collection of solutions from a solution spaceof the problem.

Step 100 is further detailed below in association with FIG. 2 and FIG. 3below.

It will be appreciated that step 100 may be performed as pre-deploymentstage, as well as periodically after usage has started, in order toimprove the generated schedules. Step 100 may be based also on theexecution of past schedules. For example, offline stage 100 may beperformed every week, every month, every year, or the like.

On orientation and adaptation step 102 may be performed, in which theuser's general preferences may be obtained or deduced.

For example, the system may present to the user two valid schedules andask which one is preferable, as opposed to current systems when the useris required to formulate a macro objective function that induces suchpreferences via the Z value. In another example, the system may presentto the user valid schedules and ask the user to point at specificassignments which he thinks are suboptimal or problematic, therebydiscovering micro objectives.

On step 104, a macro stage may be performed, in which the work orders tobe scheduled are received from a user. The user may then define the workorders and target values for goals of the solution. Step 104 may beperformed online, thereby leveraging available solutions that have beengenerated during the offline stage.

On step 104 the user can define target values for goals of a schedule,using a user interface. The user interface may be graphic and maycomprise controls such as sliders, text boxes, or the like. The user mayalso define the target values as part of orientation and adaptation step102.

Using the user interface, a target value may be defined for one or moregoals, each with its own units. For example, target values may bedefined for units throughput, due date violation, and machine timeutilization.

A user may define a minimal (or maximal, depending on whether it is apositive or a negative goal) acceptable target value for one or moregoals. In some embodiments, a target value exceeding the envelopemaximal or minimal value as achieved in discovering the operationalenvelope of the organization cannot be set. The target values may beset, and the dialogue between the system and the user described below isaimed at obtaining a practical mix of values that can be achieved.

In some embodiments, one or more values may be provided for the samegoal, for indicating minimal and maximal values. However, in most casesa user is unlikely to reject a solution in which one or more targetvalues are achieved with a rate of success exceeding a threshold.

It is noted that a user may or may not state the relative importance orweights of the goals. Furthermore, the goals may or may not be scaled,and each goal may be stated in its own units, for example minimalthroughput in terms of number of units, minimal percent for due dateviolation, and percent also for the machine time utilization. Thismethodology enables the user to leverage best his personal real-worldexperience in the original units without having to go through technicaltransformations. Additionally, the user does not have to specifynumerically the full set of relative weights. Rather, by setting one ormore target values, the user may get the implications on the othertarget values. The system can then automatically convert any set ofpointer locations into numerical relative weights. However, in furtherembodiments, relationship between the goals may be stated, using anyspecificity. For example, given four goals G1, G2, G3, and G4, a usermay indicate simple ordinal relationship like: “G3 is top priority, thenG1, followed by G2 and last priority is G4”, or assign specific weights,such as “40% on G3, 25% on G1, 20% on G3 and 15% on G4”. It will beappreciated that the schemes above are non-limiting, and any otherscheme may be used for stating the goals.

It will be appreciated that the mentioned goals are exemplary only, andmultiple additional or different goals may be used, such as accumulatedcost of raw material for all tasks, percentage or amount of customerdeliveries within a predetermined period of time, or the like. It willbe appreciated that the goals, their units, and their target values orrange may be defined on a preliminary preparation stage. Additionally,or alternatively, some defaults may be provided.

During the on-line stage, one or more valid or mathematicallyoptimal-solutions from the samples obtained on the offline stage may beretrieved and provided to the user with their assignments and goalvalues. In some embodiments a combination of two or more solutions maybe used as the basis for creating the requested solution.

In some situations, no solution can comply with all the constraints andcomply with the target values. This can become apparent, for example,due to the target values being outside the operational envelope of theorganization as discovered on the offline stage. For example, if underno circumstances, even absence of any other target value, a throughputof over 1000 units can be obtained, then if one of the target valuedefined by the user is the production of at least 1100 units, thenregardless of other goals, this target value cannot be achieved.

In such case, a solution may be provided to the user, which is based ona combination of existing solutions, and/or relaxation of some of therules.

If still no solution exists, the set of target values may be external tothe operational envelope and the user may receive a correspondingmessage.

If no solution is found, a warning may be issued to the user, indicatingthat one of the goals or a combination of multiple goals are impossibleto achieve.

If the user sets a target value for which no solution exists, with theother target values as is, but a solution may exist for other targetvalues of the other goals, then the values of the other goals may be setautomatically to reflect such combination, and to provide a graphic ortextual demonstration to the user of the tradeoffs between the goals.

Whether a solution is found or not, the user may manipulate or updatethe target values, and the provided schedules may change accordingly.This is enabled because all solutions are stored and indexed for fastretrieval. The user may continue manipulating the goals in cases such aswhen a solution is found which complies with all the goals, but does notcomply with the user's preferences as may be based on experience, or forexample exceptions to the macro goals, for example “it is necessary toensure that the work orders of customer X are performed early in theweek, to avoid possible delays”, or the like.

Step 104 may thus comprise receiving from a user a collection ofwork-orders to be executed and optionally an indication for targetvalues for the goals, wherein each target value may be indicatedindependently of others and in appropriate units. Subject to therepresentative collection comprising a solution that complies with thetarget values for the goals, a solution may be selected and provided tothe user as a practical solution.

Once a solution is retrieved from among the sampled solutions anddisplayed, on step 108, an interactive micro-planning stage may beperformed, in which a user may receive a suggested solution, iterativelymanipulate the solution, for example add, change, amend or delete workorders, change execution order, or the like, until the user converges toa practical executable solution that the user accepts. The system maythen enhance the solution to accommodate the changes introduced by theuser, for example changing the time or machine for one or more tasks. Ifthe user change cannot be accommodated since the solution contradictsany of the rules, an appropriate notice may be provided to the user,Step 108 may be performed online, in particular as it involvesinteractive work by the user where the system serves as an assistantfacilitating user's changes. This step may be referred to as“practicalizing” the solution, i.e., introducing exceptions to theschedule to accommodate micro objectives, such as important work ordersthat were left out, or improving its executability by making it morerobust to minimize the impact of disruptions during the scheduleexecution. For example, on this step the user may switch between twotasks on the same machine if this generates some buffer for a task withhigh variance in its duration. The user input may also serve thelearning phase as described in association with step 120 below.

Referring now to FIG. 4A, and FIG. 4B. FIG. 4A shows an exemplary userinterface 500, displaying a schedule. User interface 400 comprises a toppane 404 showing the tasks to be executed, and a bottom pane displayinga Gantt 408 of the tasks to be executed by each machine at each timeslot. The user may select any of the tasks on Gantt 408, for exampletask 412, and in response to message 416 may reschedule the task bydragging and dropping it. For example, the user may move the task toanother machine and/or to another time slot.

The system may then validate whether the manual assignment is feasible.If the re-assignment is infeasible, the system may issue a correspondingmessage. Furthermore, if such move degrades the Z value, a correspondingmessage may be displayed. In any case, the user may insist on the changeand lock it, and the system will keep it, for the current and futureassignments.

Referring now to FIG. 4C, in which the user has attempted to rescheduletask 420, and the system displayed message 424 informing the user thatthat such re-assignment cannot be performed since it contradicts a rule,such as dependency on a later scheduled task.

If the re-assignment is feasible, then the system may further determinethe impact of the re-assignment on any one or more of the goals asdefined. In any case, the user may continue re-assigning tasks, or goback to updating the goals on step 104.

Step 108 may thus comprise receiving from the user instructions on whator how to manipulate the displayed solution, and getting from the systemfeedback on the impact of such manipulations or non-imposing suggestionshow to implement the manipulations in better ways.

Once the user has finalized the solution, then on step 112 the solutionmay be stored, published or distributed to all relevant people, andexecuted.

During the schedule generation, and during and post-execution, the userdecisions and execution data of the schedule may be monitored on step116. For example, execution time of each work order may be reported,including on which machine an order was executed, execution start timeand duration, the amount of raw material used, or the like. Furthermonitoring data may be obtained from other devices or sensors, includingreports by Internet of Things (IoT) devices. For example, a forklift mayreport whether a cutting role was transported to the required machineand at what time. Further collected data may include changes introducedby a user to suggested schedules during the macro scheduling stage.

On step 120, execution parameters, trends, changes introduced by a userto a solution based on the sample collection of solutions, or other datamay be learned from the data collected through monitoring. The learningmay be unsupervised self-learning of the collected data.

The learned parameters and/or monitoring data may be provided to step100, such that it may be used the next time the solution space islearned. Thus, step 100 can utilize the data accumulated up to date andimprove the future generated schedules. For example, a task that hassignificant variance in its execution time, may be padded, i.e., allowedbroader time margins, to ensure execution in case it takes longer thanstandard, or may be scheduled at time slots such that a delay affectsminimally other orders, or the like. It will be appreciated that paddingmay also relate to other resources such as raw material, labor, or thelike. In another example, if execution of a task started late due to theraw material not arriving on time, further changes may be introduced,such as arranging for the material to arrive earlier, or postponing thetask.

It will be appreciated that self-learning step 120 may be implemented aspart of step 100 of sampling the solution space, or as a separate step.

It will be appreciated that although FIG. 1 and the associateddescription relate to a scheduling problem, the disclosure is notlimited to such problem, and can be used for solving any large-scaleproblem, by obtaining a sample collection of solutions from a solutionspace of the problem, the solutions based on a collection of goalsassociated with the problem, wherein some of the solutions may optimizea subset of the goals, and in an interactive stage receive from a user acollection of actual data relevant to the problem; and provide to theuser a suggested solution based on one or more solutions from the samplecollection, wherein the suggested solution is a practical solution.

Referring now also to FIG. 2 , showing a detailed flowchart of a methodfor the pre-deployment, and on-going, preparation of a sample of thesolution space, in accordance with some exemplary embodiments of thedisclosure.

On step 200, the choices are set for defining a problem such as but notlimited to a scheduling problem. The choices are defined per one factoryor organization, however, one system may serve multiple organizations,in which case it may be required to define the choices per organization.

For example, some or all of the following parameter choices may beprovided:

A set of factory settings, including for example the product types to bemanufactured and their production steps, machines, raw material, tools,processes including which machines are used, the required processingtime and additional times such as cooling time, required people,business rules, or the like. As disclosed above, the choices may includeone or more sets of factory settings.

Work order sets, also referred to as demand sets, for example a list ofwork orders to be executed for the time period for which the schedule isbeing planned, such as a day, week, month, or multiple months. Forexample, each Friday afternoon a new set of work orders to be scheduledare submitted for the coming week i.e., 52 sets of work orders for thefull year. In other embodiments, any number of sets may be provided,depending on changing demand, seasonal changes, or the like.

A set of objectives. In some embodiments, the objectives may beorthogonal to each other, and each may be expressed in a scale and unitsof its own. For example, the number of units to be produced, thepercentage of timely deliveries, minimizing a makespan (the period oftime until all tasks are executed), or the like. For the sake ofexample, three such objective sets may be considered. However, in someembodiments, each objective may be associated with a weight, wherein theweights may be relative, for example add up to 10, 100 or other numbers.

A scheduling algorithm, characterized by the core logics which primarilyconsists of (a) the sequence in which the work orders are submitted forassignment decisions, and (b) the process by which specific resourcesare assigned for each work order, such as time slots and machines. Insome embodiments, a plurality of algorithms may be used, each associatedwith a core logics combination.

A sequencing algorithm, i.e., the algorithm for ordering the work ordersto be assigned. For example, by their processing time, wherein workorders requiring longer time get higher priority, by their due date,wherein work orders with shorter due date get higher priority, or thelike. By assigning work orders A before assigning work orders B, workorders A may be assigned to be executed earlier than work orders B, andthis may increase its chances of work orders A to indeed be executed,before delays or other problems occur and accumulate, getting precedenceon shared resources, or the like. Changing the assignment order mayproduce a totally different schedule. For the sake of example, sixsequencing algorithms may be considered, wherein each may be executed aplurality of times. It will be appreciated that in some embodiments, theordering may relate to tasks rather than to work orders.

An assignment algorithm, i.e., the specific assignment decision by whichspecific resources such as time slots and machines are assigned for eachtask of a work order. Graphically depicted, this is the logic by whichassignments are placed on a Gantt chart. In one example, the algorithmmay scan the time dimension, placing all tasks of a work order at thefirst open time slot according to their order. In another example, thealgorithm may scan the machines and select the one which is firstavailable. In further embodiments, further dimensions and dimensioncombinations may be considered.

On step 204, schedules constituting the solution space may be generatedupon the choices provided on step 200.

Referring now to FIG. 3 , showing a flowchart of steps in a method forgenerating schedules for sampling the solution space, in accordance withsome exemplary embodiments of the disclosure.

On step 300, an organization (if multiple organizations are handled) anda set of work orders may be selected. The set of work orders may beselected from an exemplary set of work orders, comprising for example aplurality of work orders frequently occurring in the organization. Thesesettings determine a factory with the products it produces, theproduction line machine steps for each product, time duration, rawmaterial required for each step, and the business rules such as the workshift, e.g., 8 am to 5 pm, and whether overtime is allowed.

On step 304, an objective combination may be selected. The objectivecombinations may include one or more combinations that optimize a singlegoal, such as throughput, percent of due date compliance, or the like.Such combinations generate a variety of schedules that may provide theoperational envelope of the organization, since it provides a maximalvalue of the objective when no resources are utilized for attempting tooptimize any other objective.

On step 308, an assignment algorithm may be selected, and on step 312 awork order sequencing algorithm may be selected.

On step 316 a stopping rule may be selected, for determining the numberof schedules to be generated for each combination. The stopping rule maycomprise for example an arbitrary number of schedules to be generated.In other embodiments, the stopping rule may be that per a work ordersequencing algorithm, generating the schedules will stop when thedifference between the quality of the last generated schedules is belowa predetermined threshold, or the like.

On step 320, after all selections have been made, a schedule may begenerated, by applying the selected algorithm with the set of parametersas provided on step 300. The schedule may be generated by selecting aset of work orders, applying the sequence rule to sequence the workorders, applying the assignment algorithm to the tasks of the workorders to generate a schedule, and storing the schedule. Step 320 may beiterated until all options made on steps 304, 308, 312 and 316 above areexhausted, or until another stopping criteria has been met, such as apredetermined number of schedules have been generated, a predeterminedamount of time has passed, or the like.

Thus, in the example above, if for a single (1) organization the processis performed for 52 weeks, 7 choices of objectives (Step 304), 4 choicesof core logics (step 308) and 6 choices of sequencing algorithms, atotal of 1×52×7×4×6=8,736 schedules may be generated. This numberassumes one demand set of work orders to be scheduled. Thus, if, forexample, the same process is applied 5 times for 5 different demandsets, the total number of schedules may amount to 8,736*5=43,680schedule samples. Each schedule is thus one sample solution in thesolution space of all possible schedules.

The generated schedules may be stored, each with the corresponding setof parameter choices upon which it was created, and optionally with thevalues it assigns to one or more goals and other aspects characterizingthe schedule, such as load per machine, completion time of work orders,and the like.

Referring now back to FIG. 2 , on step 208, the operational envelope ofthe organization may be learned, e.g., by generating and analyzingschedules that maximize a subset of the objectives, such as oneobjective, two objectives, or the like, regardless of the otherobjectives. It will be appreciated that step 208 may be performed as astandalone step, or as part of schedule generation step 204, where theobjectives combinations are comprised of a subset of the objectives.

On step 212, learning and in particular self-learning algorithms may beapplied to the collection of sampled schedules to learn characteristicsof the overall schedule space, as well as features of individualschedules or groups of schedules, for example the features of group ofschedules with similar goal values, e.g., goal values differing at mostin a predetermined threshold according to a relevant metrics. In anotherexample, groups of similar schedules that were produced by differentsequencing methods or core logics may be discovered. When a user makes achange in a suggested schedule, for example promotes work orders ofpreferred customers, the system may search for a solution that issimilar to the suggested solution, or grouped together with thesuggested solution, and complies with the change, for example in whichthe preferred customer is promoted as required. Thus, the grouping orsimilarity is used for recommending a schedule in which the specificchange is accommodated, with minimal harm to the goals.

Furthermore, once the system is put to use, schedule information,including user decisions in adapting the schedules, and monitoringresults of the schedules may be added to the corresponding sampleschedules as detailed in association with step 116 of FIG. 1 , to enablefurther self-learning by the system, such as the exception cases thatthe user typically makes in a given ‘optimal’ schedule.

In non-limiting examples, the following parameters may be learned: thestatistical variation of actual time execution of tasks, which is moreinformative than the fixed time that is typically used in planningschedules, statistics on machine down time, the variation in the amountof raw material actually used, or the like.

The learned parameters may be provided to the offline stage, in order togenerate more realistic schedules. The learned parameters may also beused when evaluating whether the changes attempted by a user to asuggested schedule are practically feasible.

It will be appreciated that the parameters may also be learned beforethe system is deployed, for example by analyzing past schedules, andusing the results during the pre-deployment stage.

On step 216, trends of changes in the demand sets for schedule executionand/or trends in the executed schedules, may be analyzed for determiningrequired changes in available resources. In some non-limiting examples,the following trends may be learned: a trend in the volume and mix ofthe demand set, wherein the demand for a first product is decreasingwhile demand for a second product is increasing may be a criticalfinding for capacity planning, such as the timing to purchase equipmentto cope with change. Similarly, machine downtime data may point attrends which may be useful for changes in maintenance policies. It willbe Appreciated that other trends may be learned, relating onnon-limiting examples to personnel, equipment, raw material providers,or the like.

Referring now to FIG. 6 , showing a block diagram of the main entitiesin an apparatus in accordance with some embodiments of the disclosure.

The system may comprise one or more computing platforms 600. In someembodiments, computing platform 600 may be in the Cloud or a computersystem on organization premises, and may provide services to one or moreclients, such as one or more computing platforms associated with one ormore organizations. In further embodiments, computing platform 600 maybe the same, or one of the computing platforms executing tasks for aclient. In some embodiments edge computing may also be exercised, inwhich some initial processing is performed by local computers while moreresource consuming processing is performed on remote servers, cloudcomputers or the like.

Computing platform 600 may communicate with other computing platformswhether within the organization, in other organizations or with serverssuch as cloud servers via any communication channel, such as a Wide AreaNetwork, a Local Area Network, intranet, Internet or the like.

Computing platform 600 may comprise one or more processors 604, whichmay be one or more Central Processing Units (CPU), microprocessors,electronic circuits, Integrated Circuits (IC) or the like. Processor 604may be configured to provide the required functionality, for example byloading to memory and activating the software modules stored on storagedevice 620 detailed below.

It will be appreciated that computing platform 600 may be implemented asone or more computing platforms which may be operatively connected toeach other. For example, one or more remote computing platforms, whichmay be implemented for example on a cloud computer, may be used fortraining AI engines, or for offline generation of schedules sampling asolution space. Other computing platforms may be a part of a computernetwork of the organization, and used for providing user interface (UI)for a user for entering input, selecting one or more schedules inaccordance with the user's input, and manipulating the schedule. Inother embodiments, all the functionality may be provided by one or morecomputing platform all being a part of the organization network. It willalso be appreciated that processor 604 may be implemented as one or moreprocessors, whether located on the same computing platform or not.

Computing platform 600 may comprise Input/Output (I/O) device 608 suchas a display device, a speakerphone, a headset, a keyboard, a pointingdevice, a touch screen, or the like. I/O device 608 may be utilized toreceive input from and provide output to a user, for example receivework orders and goals from the user, display suggested schedules to theuser, receive manipulation instructions from the user and display theschedules as manipulated.

Computing platform 600 may comprise a storage device 620, such as a harddisk drive, a Flash disk, a Random Access Memory (RAM), a memory chip,or the like. In some exemplary embodiments, Storage device 620 mayretain program code operative to cause processor 604 to perform actsassociated with any of the modules listed below, or steps of the methodsof FIG. 1 , FIG. 2 or FIG. 3 above. The program code may comprise one ormore executable units, such as functions, libraries, standalone programsor the like, adapted to execute instructions as detailed below.

Storage device 620 may comprise offline schedule generation and storingmodule 624, for obtaining input parameters relevant for the schedules,as detailed for example in association with step 200 of FIG. 2 above,generating a plurality of schedules for a plurality of input parametercombinations thus sampling the solution space, and storing the scheduleswith the relevant parameters, for example in a database such as database648.

In some embodiments, offline schedule generation and storing module 624,and/or database 648 may be implemented on a computing platform remotefrom the organization, such as a cloud computer or cloud storage device.

Storage device 620 may comprise user interface 628 for displayinginformation to the user and receiving information form the user. Userinterface 628 may be implemented separately, for example as separatemodules, for the offline stage and the online stages.

Storage device 620 may comprise schedule selection module 632 forreceiving parameters including a set of work orders and goals, andselecting or combining one or more schedules prepared during the offlinestage.

Storage device 620 may comprise schedule feasibility assessment module636 for assessing whether a schedule complies with the rules.

Storage device 620 may comprise schedule goal assessment module 640 fordetermining the goal compliance of a schedule with the one or moregoals.

Storage device 620 may comprise schedule monitoring module 644 formonitoring execution of the schedule, for example whether, on whatmachine, at what time and how long execution of a certain task took, andstoring the data such that offline schedule generation and storingmodule 624 can access it directly or indirectly when generatingschedules. In order to collect the information, communication components612 may communicate with other computing platforms, such as computingplatforms associated with the production process.

Storage device 620 may comprise options, parameters and schedulesdatabase 648, which may be implemented as part of, or as a separatedatabase accessible to modules of storage device 620. Options,parameters and schedules database 648 may store the various choices ofstep 200, the various schedules and the parameters associated with eachschedule, or other data required for or generated by the system.

It will be appreciated that the module description above is exemplaryonly, that the modules may be arranged differently, and that thedivision of tasks between the modules may be different.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, Java, C++, C#, Phyton,or the like, and conventional procedural programming languages, such asthe “C” programming language or similar programming languages. Thecomputer readable program instructions may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider). In some embodiments, electronic circuitry including, forexample, programmable logic circuitry, field-programmable gate arrays(FPGA), or programmable logic arrays (PLA) may execute the computerreadable program instructions by utilizing state information of thecomputer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

1. A method for determining an executable solution for a problem ofscheduling work orders within a manufacturing factory, comprising:obtaining an automatically generated sample collection of solutions froma solution space of the problem, wherein the sample collectioncomprising a plurality of solutions to the problem based on a collectionof algorithms and optimization goals each representing a differentpriority ranking of quality metrics, wherein the sample collection ofsolutions represents an operational envelope of the organization, andwherein the sample collection includes at least one solution optimizinga subset of the goals, the subset of the goals different from thecollection of goals; in an interactive stage: receiving from a user acollection of actual work orders and target values for goals to beexecuted; and providing to the user a suggested solution for schedulingthe actual work orders, the suggested solution based on at least onesolution from the sample collection, wherein the suggested solution is apractical solution; monitoring execution of the at least one suggestedsolution to obtain execution data, wherein said monitoring comprisesobtaining through a communication component at least a report from atleast one sensor involved in executing the suggested solution; andautomatically updating the sample collection of solutions in accordancewith the execution data including the report, wherein said updatingcomprises applying multiple algorithms for generating collecting of workorders and resource combinations for multiple optimization goals, eachrepresenting a different priority ranking of quality metrics, thereby;increasing a size of a training set of the automatic learning, toimprove execution of future work orders.
 2. The method of claim 1,wherein said interactive stage further comprises: receiving from theuser at least one change to the suggested solution; enhancing thesuggested solution to accommodate the at least one change, therebyobtaining the practical solution to the problem; and learning at leastone parameter from the at least one change received from the user. 3.The method of claim 1, wherein the suggested solution is selected fromthe sample collection of solutions.
 4. The method of claim 1, furthercomprising receiving from the user a set of target values, and whereinsubject to the sample collection not comprising a solution that complieswith the target values, issuing a warning to the user indicating thatnot all target values can be met.
 5. The method of claim 4, furthercomprising receiving an updated target value from the user and providingthe suggested solution to comply with the updated target value.
 6. Themethod of claim 1, wherein generating the sample collection comprises:obtaining goals of the problem; generating a plurality of solutions,wherein generating each solution from the plurality of solutionscomprises: selecting a work order set from an exemplary set of workorders and corresponding settings; selecting an objective combination;selecting a work order sequencing algorithm for setting an order inwhich work orders from the work order set are to be assigned; selectingan assignment algorithm for assigning required resources for each workorder; and applying the work order sequencing algorithm to repeatedlyselect a work order and applying the assignment algorithm for assigningresources to the work order.
 7. The method of claim 1 wherein the samplecollection is generated and updated on an offline stage when users areoff.
 8. The method of claim 1 wherein the sample collection comprises atleast two solutions.
 9. The method of claim 1 wherein the subset of thegoals comprises exactly one goal from the collection of goals.
 10. Themethod of claim 1 wherein the collection the collection of algorithmscomprises at least two scheduling algorithms or at least two sequencingalgorithms.
 11. The method of claim 1, wherein said receiving the changefrom the user and said enhancing the solution are repeated until thepractical solution converges.
 12. The method of claim 1, furthercomprising receiving from the user an indication for a target value foreach of at least two goals, wherein the target value for each goal ofthe at least two goals is indicated independently of other goals and inunits appropriate for the goal.
 13. The method of claim 1, furthercomprising: using at least one data item from the execution data toenhance the suggested solution.
 14. The method of claim 1, furthercomprising: receiving from the user at least one request or at least oneupdate to the at least one suggested solution; and incorporating the atleast one request or at least one update into determination of thesample collection of solutions.
 15. The method of claim 1, furthercomprising: receiving from the user at least one request or at least oneupdates to the at least one suggested solution; receiving from the usera set of target values; verifying that the at least one suggestedsolution as updated in response to the at least one request or at leastone update is feasible and complies with the set of target values; andsubject to the at least one suggested solution as updated not complyingwith the at least one target value, providing a warning to the user. 16.The method of claim 1, further comprising receiving from the user a setof target values, and wherein the indication for each target value isreceived through a user interface.
 17. The method of claim 15, whereinthe user interface can limit a target value to values or value rangelearned from the at least two solutions each optimizing the at least onegoal.
 18. The method of claim 1, wherein the suggested solution isselected from the sample collection of solutions.
 19. The method ofclaim 1, further comprising receiving from the user a set of targetvalues, and wherein the at least one solution indicates a point on anoperational envelope of the organization, and wherein absence of asuggested solution indicates that the set of target values is externalto the operational envelope.
 20. The method of claim 1, wherein thesuggested solution comprises at least one solution from the samplecollection in which at least one task is padded by allocating additionalresources to the at least one task beyond resources required by thetask.
 21. The method of claim 1, wherein the additional resources aredetermined in accordance with deviations in the resources required bythe at least one task in past schedules.
 22. A method for determining anexecutable solution for a problem, comprising: generating a samplecollection of solutions, each solution in the sample collectionrepresenting a solution from a solution space of a problem of schedulingwork orders; receiving data related to a scheduling solution createdbased on the sample collection; and combining the data with the samplecollection, thereby learning an enhanced sample collection of solutions.23. The method of claim 22, wherein the data comprises actual executiondata of the schedule.
 24. The method of claim 22, wherein the datacomprises changes introduced by a user to a solution based on the samplecollection of solutions.
 25. The method of claim 22, wherein saidlearning is unsupervised self-learning.
 26. The method of claim 22,further comprising analyzing execution trends for determining requiredchanges in available resources.
 27. The method of claim 22, furthercomprising learning trends to be used for long term forecasting andcapacity planning based on the sample collection and the enhanced samplecollection of solutions.
 28. (canceled)
 29. A computerized apparatus fordetermining an executable solution for a problem of scheduling workorders within a manufacturing factory; the apparatus having a processor,the processor configured to perform the steps of: obtaining a samplecollection of solutions from a solution space of a problem of schedulingwork orders, wherein the sample collection comprising a plurality ofsolutions to the problem based on a collection of algorithms andoptimization goals each representing a different priority ranking ofquality metrics, wherein the sample collection of solutions representsan operational envelope of the organization, and wherein the samplecollection includes at least one solution optimizing a subset of thegoals, the subset of the goals different from the collection of goals;in an interactive stage: receiving from a user a collection of actualwork orders and target values for goals to be executed; providing to theuser a suggested solution for scheduling the actual work orders, thesuggested solution based on at least one solution from the samplecollection; receiving from the user at least one change to the suggestedsolution; enhancing the suggested solution to accommodate the at leastone change, thereby obtaining a practical solution; and providing thepractical solution to the user; monitoring execution of the at least onesuggested solution to obtain execution data wherein said monitoringcomprises obtaining through a communication component at least a reportfrom at least one sensor involved in executing the suggested solution;and automatically updating the sample collection of solutions inaccordance with the execution data including the report, wherein saidupdating comprises applying multiple algorithms for generatingcollections of work orders and resource combinations for multipleoptimization goals, each representing a different priority ranking ofquality metrics, thereby; increasing a size of a training set of theautomatic learning, to improve execution of future work orders.
 30. Acomputer program product for determining an executable solution for aproblem of scheduling work order within a manufacturing factory, thecomputer program product comprising a non-transitory computer readablestorage medium retaining program instructions configured to cause aprocessor to perform actions, which program instructions implement:obtaining a sample collection of solutions from a solution space of aproblem of scheduling work orders, wherein the sample collectioncomprising a plurality of solutions to the problem based on a collectionof optimization goals each representing a different priority ranking ofquality metrics, wherein the sample collection of solutions representsan operational envelope of the organization, and wherein the samplecollection includes at least one solution optimizing a subset of thegoals, the subset of the goals different from the collection of goals;in an interactive stage: receiving from a user a collection of actualwork orders and target values for goals to be executed; providing to theuser a suggested solution for scheduling the actual work orders, thesuggested solution based on at least one solution from the samplecollection; receiving from the user at least one change to the suggestedsolution; enhancing the suggested solution to accommodate the at leastone change, thereby obtaining a practical solution; and providing thepractical solution to the user; monitoring execution of the at least onesuggested solution to obtain execution data wherein said monitoringcomprises obtaining through a communication component at least a reportfrom at least one sensor involved in executing the suggested solution;and updating the sample collection of solutions in accordance with theexecution data including the report, wherein said updating comprisesapplying multiple algorithms for generating collections of work ordersand resource combination, for multiple optimization goals, eachrepresenting a different priority ranking of quality metrics, thereby;increasing a size of a training set of the automatic learning, toimprove execution of future work orders.
 31. The method of claim 1,further comprising identifying a long term capacity problem.